axios.interceptors.request.use(config => {
    var accessToken = $.cookie('U-TOKEN');
    var expiresTime = $.cookie('expiresTime');
    // 当前时间
    var currentTime = new Date().getTime();
    // 1.在最后5分钟之内有操作的话，自动刷新Token
    var time = (expiresTime - currentTime) / (60 * 1000);
    if(time > 0 && time <= 5) {
        // 刷新Token
        refreshToken();
    }
    // 2.两次操作，上一次操作在Token过期之前，当次操作在过期时间之后，两者时间差小于30分钟，自动刷新Token
    var lastTime = $.cookie('lastTime');
    var diffTime = (currentTime - lastTime) / (60 * 1000);
    if (lastTime < expiresTime && currentTime > expiresTime && diffTime <= 30) {
        // 刷新Token
        refreshToken();
    }
    // 将currentTime存入cookie，即最后一次操作的时间
    $.cookie('lastTime',currentTime,{
        expires: expiresTime,		// 过期时间，如果是数字，单位为天，也可以是日期
        path: '/',					// 根及其下所有都可以可获取
        domain: 'hrm.com',			// 域
        secure: false				// 是否支持HTTPS
    });
    //如果已经登录了,每次都把token作为一个请求头传递过程
    if (accessToken && accessToken.length > 0) {
        // 让每个请求携带token--['X-Token']为自定义key 请根据实际情况自行修改
        config.headers['Authorization'] = "bearer "+ accessToken;
    }
    return config
}, error => {
    Promise.reject(error)
})

function refreshToken() {
    var refDto = {
        "refreshToken" : $.cookie('R-TOKEN'),
        "type" : 1
    }
    this.$http.post("/auth/loginUser/refresh",refDto).then(res => {
        var ajaxResult = res.data;
        if(ajaxResult.success) {
            var accessToken = ajaxResult.resultObj.access_token;
            var refToken = ajaxResult.resultObj.refresh_token;
            // 将Token保存到cookie中
            var millisecond = new Date().getTime();
            var expiresTime = new Date(millisecond + 60 * 1000 * 30);
            $.cookie('U-TOKEN', accessToken, {
                expires: expiresTime,		// 过期时间，如果是数字，单位为天，也可以是日期
                path: '/',					// 根及其下所有都可以可获取
                domain: 'hrm.com',			// 域
                secure: false				// 是否支持HTTPS
            });
            $.cookie('expiresTime', expiresTime, {
                expires: 7,					// 过期时间，如果是数字，单位为天，也可以是日期
                path: '/',					// 根及其下所有都可以可获取
                domain: 'hrm.com',			// 域
                secure: false				// 是否支持HTTPS
            });
            $.cookie('R-TOKEN', refToken, {
                expires: 7,					// 过期时间，如果是数字，单位为天，也可以是日期
                path: '/',					// 根及其下所有都可以可获取
                domain: 'hrm.com',			// 域
                secure: false				// 是否支持HTTPS
            })
        }
    })
}